package cn.thinkluck.pattern.composite;

import lombok.Data;
import lombok.extern.slf4j.Slf4j;

import java.util.ArrayList;
import java.util.List;

/**
 * 文件夹
 * @description 组合模式，递归结构，文件夹和文件夹嵌套组合
 * @Author liutao
 * @DateTime 2024/7/21 下午9:10
 */
@Slf4j
@Data
public class Folder implements FileSys {
    private String name;
    //包含多个文件或者文件夹
    private List<FileSys> fileSys = new ArrayList<>();

    public Folder(String name) {
        this.name = name;
    }

    @Override
    public void disPlay() {
        log.info("文件夹：{}", name);
        for (FileSys sys : fileSys) {
            sys.disPlay();
        }
    }
    public void add(FileSys fileSys) {
        this.fileSys.add(fileSys);
    }
}
